#!/usr/bin/env python
# -*- coding: utf-8 -*-

##################################################################
#
#		PyAcAdmin - Sistema Gerenciador de Academia
#
# 	Este arquivo faz parte do projeto PyAcAdmin
#	http://code.google.com/p/pyacadmin/
#	Desenvolvido por: Carlos Henrique Marques da Cunha Filho
#	rickadt@gmail.com
#
##################################################################

import pygtk
pygtk.require("2.0")
import gtk
import MaskEntry

class PyAcAdminInterface:
	def __init__(self):
		self.janela()
	
	def janela(self):
		########## Janela Principal
		self.janela = gtk.Window(gtk.WINDOW_TOPLEVEL)
		self.janela.set_size_request(780,500)
		self.janela.set_position(gtk.WIN_POS_CENTER)
		self.janela.set_title(' PyAcAdmin - Sistema Gerenciador de Academia ')
		self.janela.set_icon_from_file('icons/icone.png')
		self.janela.set_resizable(False)
		##########
		
		
		########## Fixed da janela principal
		self.fixed = gtk.Fixed()
		self.janela.add(self.fixed)
		##########
		
				
		########## Tollbar principal
		toolbar = gtk.Toolbar()
		toolbar.set_size_request(780, 60)
		toolbar.set_style(gtk.TOOLBAR_BOTH)
		self.fixed.put(toolbar, 0, 0)
		### Botões do toobal principal
		" Botão cliente "
		icon = gtk.Image()
		icon.set_from_file('icons/btCliente.png')
		self.btCliente = toolbar.append_item('Clientes' , None, None, icon, None, None)
		self.btCliente.set_size_request(100, 60)
		" Adiciona separador "
		toolbar.append_space()
		" Botão contratos "
		icon = gtk.Image()
		icon.set_from_file('icons/btContrato.png')
		self.btContrato = toolbar.append_item('Contratos' , None, None, icon, None, None)
		self.btContrato.set_size_request(100, 60)
		" Adiciona separador "
		toolbar.append_space()
		" Botão Financeiro "
		icon = gtk.Image()
		icon.set_from_file('icons/btFinanceiro.png')
		self.btFinanceiro = toolbar.append_item('Financeiro', None, None, icon, None, None)
		self.btFinanceiro.set_size_request(100, 60)
		" Adiciona separador "
		toolbar.append_space()
		" Botão Manutenção "
		icon = gtk.Image()
		icon.set_from_file('icons/btManutencao.png')
		self.btManutencao = toolbar.append_item('Manutenção' , None, None, icon, None, None)
		self.btManutencao.set_size_request(100,60)
		" Adiciona separador "
		toolbar.append_space()
		" Botão Planos " 
		icon = gtk.Image()
		icon.set_from_file('icons/btPlanos.png')
		self.btPlanos = toolbar.append_item('Planos' , None, None, icon, None, None)
		self.btPlanos.set_size_request(100,60)
		###
		##########
		
		
		########## Notebook principal
		self.notebook = gtk.Notebook()
		self.notebook.set_size_request(780, 440)
		self.notebook.set_show_tabs(False)
		self.fixed.put(self.notebook, 0, 60)
		### Abas do notebook principal
		" Aba0 Página para clientes "
		self.Aba0 = gtk.Fixed()
		self.notebook.append_page(self.Aba0)
		" Aba1 Página para contratos "
		self.Aba1 = gtk.Fixed()
		self.notebook.append_page(self.Aba1)
		" Aba1 Página para financeiro "
		self.Aba2 = gtk.Fixed()
		self.notebook.append_page(self.Aba2)
		" Aba2 Página para manutenção "
		self.Aba3 = gtk.Fixed()
		self.notebook.append_page(self.Aba3)
		" Aba3 Página para planos "
		self.Aba4 = gtk.Fixed()
		self.notebook.append_page(self.Aba4)
		
		
		
		
		### Toolbar para manutenção de clientes
		tbCliente = gtk.Toolbar()
		tbCliente.set_size_request(100, 440)
		tbCliente.set_style(gtk.TOOLBAR_BOTH)
		tbCliente.set_orientation(gtk.ORIENTATION_VERTICAL)
		self.Aba0.put(tbCliente, 0, 0)
		### Botões do toobal 
		" Botão Cadastrar "
		icon = gtk.Image()
		icon.set_from_file('icons/btCadastrarCliente.png')
		self.btFormCadCliente = tbCliente.append_item('Cadastrar' , None, None, icon, None, None)
		self.btFormCadCliente.set_size_request(100, 60)
		" Adiciona separador "
		tbCliente.append_space()
		" Pesquisar "
		icon = gtk.Image()
		icon.set_from_file('icons/btPesquisarCliente.png')
		self.btFormPesCliente = tbCliente.append_item('Pesquisar', None, None, icon, None, None)
		self.btFormPesCliente.set_size_request(100, 60)
		###
		
		
		
		" Notebook para manutenção de clientes "
		self.nbCliente = gtk.Notebook()
		self.nbCliente.set_size_request(680, 440)
		self.nbCliente.set_show_tabs(False)
		self.Aba0.put(self.nbCliente, 100,0)
		### Abas do Formulário de Cadastro de Clientes
		self.nbClienteAba0 = gtk.Fixed()
		self.nbCliente.append_page(self.nbClienteAba0)
		### Aba1 do Formulário de Pesquisa de Clientes
		self.nbClienteAba1 = gtk.Fixed()
		self.nbCliente.append_page(self.nbClienteAba1)
		### Aba2 do Resultado da Pesquisa de Clientes
		self.nbClienteAba2 = gtk.Fixed()
		self.nbCliente.append_page(self.nbClienteAba2)
		### Aba3 do Treeview de Formulario de Alteração
		self.nbClienteAba3 = gtk.Fixed()
		self.nbCliente.append_page(self.nbClienteAba3)
		
		
		
		########## Abas do Notebook de clientes
		" Itens da Aba0 - Formulário de cadastro "
		frameCadCliente = gtk.Frame("Cadastro de Cliente")
		frameCadCliente.set_size_request(650, 410)
		frameCadCliente.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
		self.nbClienteAba0.put(frameCadCliente, 10, 10)
		" Campo Nome "
		self.nbClienteAba0.put(gtk.Label('Nome:'), 30, 30)
		self.txtCadClienteNome = gtk.Entry()
		self.txtCadClienteNome.set_size_request(400, 27)
		self.nbClienteAba0.put(self.txtCadClienteNome, 30, 50)
		" Campo Endereço "
		self.nbClienteAba0.put(gtk.Label('Endereço:'), 30, 97)
		self.txtCadClienteEndereco = gtk.Entry()
		self.txtCadClienteEndereco.set_size_request(400, 27)
		self.nbClienteAba0.put(self.txtCadClienteEndereco, 30, 117)
		" Campo Telefone "
		self.nbClienteAba0.put(gtk.Label('Telefone:'), 30, 164)
		self.txtCadClienteTelefone = MaskEntry.EntryMask()
		self.txtCadClienteTelefone.set_mask('(99)-9999-9999')
		self.txtCadClienteTelefone.set_size_request(150, 27)
		self.nbClienteAba0.put(self.txtCadClienteTelefone, 30, 184)
		" Campo Cidade "
		self.nbClienteAba0.put(gtk.Label('Cidade:'), 200, 164)
		self.txtCadClienteCidade = gtk.Entry()
		self.txtCadClienteCidade.set_size_request(200, 27)
		self.nbClienteAba0.put(self.txtCadClienteCidade, 200, 184)
		" Campo CEP "
		self.nbClienteAba0.put(gtk.Label('CEP:'), 30, 231)
		self.txtCadClienteCEP = MaskEntry.EntryMask()
		self.txtCadClienteCEP.set_mask('99999-999')
		self.txtCadClienteCEP.set_size_request(150, 27)
		self.nbClienteAba0.put(self.txtCadClienteCEP, 30, 251)
		" Campo RG "
		self.nbClienteAba0.put(gtk.Label('RG:'), 200, 231)
		self.txtCadClienteRG = MaskEntry.EntryMask()
		self.txtCadClienteRG.set_mask('99.999.999-99')
		self.txtCadClienteRG.set_size_request(150, 27)
		self.nbClienteAba0.put(self.txtCadClienteRG, 200, 251)
		" Campo CPF "
		self.nbClienteAba0.put(gtk.Label('CPF:'), 370, 231)
		self.txtCadClienteCPF = MaskEntry.EntryMask()
		self.txtCadClienteCPF.set_mask('999.999.999-99')
		self.txtCadClienteCPF.set_size_request(150, 27)
		self.nbClienteAba0.put(self.txtCadClienteCPF, 370, 251)
		" Campo Data de nascimento "
		self.nbClienteAba0.put(gtk.Label('Data de nascimento:'), 30, 298)
		self.txtCadClienteDataN = MaskEntry.EntryMask()
		self.txtCadClienteDataN.set_mask('99/99/9999')
		self.txtCadClienteDataN.set_size_request(150, 27)
		self.nbClienteAba0.put(self.txtCadClienteDataN, 30, 318)
		" Campo Data de cadastro "
		self.nbClienteAba0.put(gtk.Label('Data de Cadastro:'), 200, 298)
		self.txtCadClienteDataC = MaskEntry.EntryMask()
		self.txtCadClienteDataC.set_mask('99/99/9999')
		self.txtCadClienteDataC.set_size_request(150, 27)
		self.nbClienteAba0.put(self.txtCadClienteDataC, 200, 318)
		" Botão Cadastrar "
		self.btCadastrarCliente = gtk.Button(stock=gtk.STOCK_SAVE)
		self.nbClienteAba0.put(self.btCadastrarCliente, 30, 360)
		##########0
		
		
		##########
		" Itens da Aba1 - Formulário de Pesquisa de Clientes"
		framePesCliente = gtk.Frame("Pesquisar Cliente")
		framePesCliente.set_size_request(650, 410)
		framePesCliente.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
		self.nbClienteAba1.put(framePesCliente, 10, 10)
		### Pesquisar cliente por Nome 
		framePesCliente = gtk.Frame("Pesquisar por Nome")
		framePesCliente.set_size_request(400, 150)
		framePesCliente.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
		self.nbClienteAba1.put(framePesCliente, 50, 50)
		" Campo Nome "
		self.nbClienteAba1.put(gtk.Label('Nome:'), 80, 80)
		self.txtPesClienteNome = gtk.Entry()
		self.txtPesClienteNome.set_size_request(300, 27)
		self.nbClienteAba1.put(self.txtPesClienteNome, 80, 100)
		" Botão Pesquisar "
		self.btPesquisarClienteNome = gtk.Button(stock=gtk.STOCK_FIND)
		self.nbClienteAba1.put(self.btPesquisarClienteNome, 80, 150)
		###
		### Pesquisar cliente por Código
		framePesCliente = gtk.Frame("Pesquisar por Código")
		framePesCliente.set_size_request(400, 150)
		framePesCliente.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
		self.nbClienteAba1.put(framePesCliente, 50, 230)
		" Campo Código "
		self.nbClienteAba1.put(gtk.Label('Código:'), 80, 260)
		self.txtPesClienteCodigo = gtk.Entry()
		self.txtPesClienteCodigo.set_size_request(300, 27)
		self.nbClienteAba1.put(self.txtPesClienteCodigo, 80, 280)
		" Botão Pesquisar "
		self.btPesquisarClienteCodigo = gtk.Button(stock=gtk.STOCK_FIND)
		self.nbClienteAba1.put(self.btPesquisarClienteCodigo, 80, 330)
		
		##########
		" Itens da Aba2 de Clientes "
		" Label "
		self.nbClienteAba2.put(gtk.Label('Resultado da pesquisa'), 10, 10)
		" Scrolled Window "
		scroll = gtk.ScrolledWindow()
		scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) 
		scroll.set_size_request(650, 330)
		self.nbClienteAba2.put(scroll, 10, 30)
		" TreeView"
		self.treev = gtk.TreeView()
		scroll.add(self.treev)
		self.model = gtk.ListStore(str, str, str, str)
		self.treev.set_model(self.model)
		self.col1 = gtk.TreeViewColumn("Código", gtk.CellRendererText(), text=0)
		self.col2 = gtk.TreeViewColumn("Nome", gtk.CellRendererText(), text=1)
		self.col3 = gtk.TreeViewColumn("Endereço", gtk.CellRendererText(), text=2)
		self.col4 = gtk.TreeViewColumn("Telefone", gtk.CellRendererText(), text=3)
		self.col1.set_min_width(50)
		self.col2.set_min_width(250)
		self.col3.set_min_width(220)
		self.col4.set_min_width(100)
		self.treev.append_column(self.col1)
		self.treev.append_column(self.col2)
		self.treev.append_column(self.col3)
		self.treev.append_column(self.col4)
		" Botão Alterar "
		self.btAltCliente = gtk.Button(stock=gtk.STOCK_EDIT)
		self.btAltCliente.set_size_request(100, 40)
		self.nbClienteAba2.put(self.btAltCliente, 50, 380)
		""" 
		Botão alterar esta desativado por motivos de segurança
		Não é seguro Excluir um Cliente que tem referencia com
		outras tabelas do Banco de dados
		" Botão Deletar "
		self.btDelCliente = gtk.Button(stock=gtk.STOCK_DELETE)
		self.btDelCliente.set_size_request(100,40)
		self.nbClienteAba2.put(self.btDelCliente, 170, 380)
		"""
		
		##########
		" Itens da Aba3 de Clientes "
		frame = gtk.Frame('Alteração de Clientes')
		frame.set_size_request(650, 410)
		frame.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
		self.nbClienteAba3.put(frame, 10, 10)
		### Campos para alteração
		" Campo Nome "
		self.nbClienteAba3.put(gtk.Label('Nome:'), 30, 30)
		self.txtAltClienteNome = gtk.Entry()
		self.txtAltClienteNome.set_size_request(400, 27)
		self.nbClienteAba3.put(self.txtAltClienteNome, 30, 50)
		" Campo Endereço "
		self.nbClienteAba3.put(gtk.Label('Endereço:'), 30, 97)
		self.txtAltClienteEndereco = gtk.Entry()
		self.txtAltClienteEndereco.set_size_request(400, 27)
		self.nbClienteAba3.put(self.txtAltClienteEndereco, 30, 117)
		" Campo Telefone "
		self.nbClienteAba3.put(gtk.Label('Telefone:'), 30, 164)
		self.txtAltClienteTelefone = MaskEntry.EntryMask()
		self.txtAltClienteTelefone.set_mask('(99)-9999-9999')
		self.txtAltClienteTelefone.set_size_request(150, 27)
		self.nbClienteAba3.put(self.txtAltClienteTelefone, 30, 184)
		" Campo Cidade "
		self.nbClienteAba3.put(gtk.Label('Cidade:'), 200, 164)
		self.txtAltClienteCidade = gtk.Entry()
		self.txtAltClienteCidade.set_size_request(200, 27)
		self.nbClienteAba3.put(self.txtAltClienteCidade, 200, 184)
		" Campo CEP "
		self.nbClienteAba3.put(gtk.Label('CEP:'), 30, 231)
		self.txtAltClienteCEP = MaskEntry.EntryMask()
		self.txtAltClienteCEP.set_mask('99999-999')
		self.txtAltClienteCEP.set_size_request(150, 27)
		self.nbClienteAba3.put(self.txtAltClienteCEP, 30, 251)
		" Campo RG "
		self.nbClienteAba3.put(gtk.Label('RG:'), 200, 231)
		self.txtAltClienteRG = MaskEntry.EntryMask()
		self.txtAltClienteRG.set_mask('99.999.999-99')
		self.txtAltClienteRG.set_size_request(150, 27)
		self.nbClienteAba3.put(self.txtAltClienteRG, 200, 251)
		" Campo CPF "
		self.nbClienteAba3.put(gtk.Label('CPF:'), 370, 231)
		self.txtAltClienteCPF = MaskEntry.EntryMask()
		self.txtAltClienteCPF.set_mask('999.999.999-99')
		self.txtAltClienteCPF.set_size_request(150, 27)
		self.nbClienteAba3.put(self.txtAltClienteCPF, 370, 251)
		" Campo Data de nascimento "
		self.nbClienteAba3.put(gtk.Label('Data de nascimento:'), 30, 298)
		self.txtAltClienteDataN = MaskEntry.EntryMask()
		self.txtAltClienteDataN.set_mask('99/99/9999')
		self.txtAltClienteDataN.set_size_request(150, 27)
		self.nbClienteAba3.put(self.txtAltClienteDataN, 30, 318)
		" Campo Data de cadastro "
		self.nbClienteAba3.put(gtk.Label('Data de Cadastro:'), 200, 298)
		self.txtAltClienteDataC = MaskEntry.EntryMask()
		self.txtAltClienteDataC.set_mask('99/99/9999')
		self.txtAltClienteDataC.set_size_request(150, 27)
		self.nbClienteAba3.put(self.txtAltClienteDataC, 200, 318)
		" Campo ID do Cliente "
		self.nbClienteAba3.put(gtk.Label('Código:'), 400, 298)
		self.txtAltClienteId = gtk.Entry()
		self.txtAltClienteId.set_size_request(50, 27)
		self.txtAltClienteId.set_editable(False)
		self.nbClienteAba3.put(self.txtAltClienteId, 400, 318)
		" Botão Cadastrar "
		self.btSalvarAltCliente = gtk.Button(stock=gtk.STOCK_SAVE)
		self.nbClienteAba3.put(self.btSalvarAltCliente, 30, 360)
		##########
		##########
		
		
		
		##########
		##########
		### Contratos
		# Toolbal para manutenção de Contratos
		tbContratos = gtk.Toolbar()
		tbContratos.set_size_request(100, 440)
		tbContratos.set_style(gtk.TOOLBAR_BOTH)
		tbContratos.set_orientation(gtk.ORIENTATION_VERTICAL)
		self.Aba1.put(tbContratos, 0, 0)
		" Adiciona separador "
		tbContratos.append_space()
		" Botão Novo contrato "
		icon = gtk.Image()
		icon.set_from_file('icons/btNovoContrato.png')
		self.btNovoContrato = tbContratos.append_item('Novo', None, None, icon, None, None)
		self.btNovoContrato.set_size_request(100, 60)
		" Adiciona separador "
		tbContratos.append_space()
		" Botão Pesquisar contrato "
		icon = gtk.Image()
		icon.set_from_file('icons/btPesquisarContrato.png')
		self.btPesquisarContrato = tbContratos.append_item('Pesquisar', None, None, icon, None, None)
		self.btPesquisarContrato.set_size_request(100, 60)
		" Adiciona separador "
		tbContratos.append_space()
		##########
		##########
		##########
		##########
		##########
		##########
		##########
		##########
		" Notebook para manutenção de Contratos "
		self.nbContrato = gtk.Notebook()
		self.nbContrato.set_size_request(630, 440)
		self.nbContrato.set_show_tabs(False)
		self.Aba1.put(self.nbContrato, 150,0)
		### Abas do Notebook de Financeiro
		### Aba0 - Formulário para Novo Cantrato
		self.nbContratoAba0 = gtk.Fixed()
		self.nbContrato.append_page(self.nbContratoAba0)
		### Aba1 - Formulário de pesquisar de Cantratos "
		self.nbContratoAba1 = gtk.Fixed()
		self.nbContrato.append_page(self.nbContratoAba1)
		### Aba2 - Resultado da pesquisa de contrato por Cliente "
		self.nbContratoAba2 = gtk.Fixed()
		self.nbContrato.append_page(self.nbContratoAba2)
		### Aba3 - Resultado da pesquisa de contrato por Código "
		self.nbContratoAba3 = gtk.Fixed()
		self.nbContrato.append_page(self.nbContratoAba3)
		
		" Itens da Aba0 - formulário de Cadastro de Contrato "
		frame = gtk.Frame('Novo Contrato')
		frame.set_size_request(600,410)
		frame.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
		self.nbContratoAba0.put(frame, 10, 10)
		" Botão Informar Cliente "
		self.btInformarCliente = gtk.Button('Informar Cliente')
		self.nbContratoAba0.put(self.btInformarCliente, 480, 60)
		" Botão Informar Plano "
		self.btInformarPlano = gtk.Button('Informar Plano')
		self.nbContratoAba0.put(self.btInformarPlano, 480, 180)
		" Dados do Cliente "
		frame = gtk.Frame('Cliente')
		frame.set_size_request(420,100)
		frame.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
		self.nbContratoAba0.put(frame, 30, 40)
		self.nbContratoAba0.put(gtk.Label('Código:'), 50, 70)
		self.txtNovoContratoCodCliente = gtk.Entry()
		self.txtNovoContratoCodCliente.set_size_request(50, 27)
		self.txtNovoContratoCodCliente.set_editable(False)
		self.nbContratoAba0.put(self.txtNovoContratoCodCliente, 120, 70)
		self.nbContratoAba0.put(gtk.Label('Nome:'), 50, 100)
		self.txtNovoContratoNomeCliente = gtk.Entry()
		self.txtNovoContratoNomeCliente.set_size_request(300, 27)
		self.txtNovoContratoNomeCliente.set_editable(False)
		self.nbContratoAba0.put(self.txtNovoContratoNomeCliente, 120, 100)
		" Dados do Plano "
		frame = gtk.Frame('Plano')
		frame.set_size_request(420,100)
		frame.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
		self.nbContratoAba0.put(frame, 30, 160)
		self.nbContratoAba0.put(gtk.Label('Código:'), 50, 190)
		self.txtNovoContratoCodPlano = gtk.Entry()
		self.txtNovoContratoCodPlano.set_size_request(50, 27)
		self.txtNovoContratoCodPlano.set_editable(False)
		self.nbContratoAba0.put(self.txtNovoContratoCodPlano, 120, 190)
		self.nbContratoAba0.put(gtk.Label('Plano:'), 50, 220)
		self.txtNovoContratoNomePlano = gtk.Entry()
		self.txtNovoContratoNomePlano.set_size_request(300, 27)
		self.txtNovoContratoNomePlano.set_editable(False)
		self.nbContratoAba0.put(self.txtNovoContratoNomePlano, 120, 220)
		" Data de Inicio "
		self.nbContratoAba0.put(gtk.Label('Data de Inicio:'), 30, 280)
		self.txtNovoContratoDataI = MaskEntry.EntryMask()
		self.txtNovoContratoDataI.set_mask('99/99/9999')
		self.txtNovoContratoDataI.set_size_request(100, 27)
		self.nbContratoAba0.put(self.txtNovoContratoDataI, 30, 300)
		" Data de Termino "
		self.nbContratoAba0.put(gtk.Label('Data de Termino:'), 220, 280)
		self.txtNovoContratoDataT = MaskEntry.EntryMask()
		self.txtNovoContratoDataT.set_mask('99/99/9999')
		self.txtNovoContratoDataT.set_size_request(100, 27)
		self.nbContratoAba0.put(self.txtNovoContratoDataT, 220, 300)
		" Valor Mensal "
		self.nbContratoAba0.put(gtk.Label('Valor Total:'), 30, 350)
		self.txtNovoContratoValorTotal = gtk.Entry()
		self.txtNovoContratoValorTotal.set_editable(False)
		self.txtNovoContratoValorTotal.set_size_request(100,27)
		self.nbContratoAba0.put(self.txtNovoContratoValorTotal, 30, 370)
		" Numero de parcelas	 "
		self.nbContratoAba0.put(gtk.Label('Numero de parcelas:'), 150, 350)
		self.txtNovoContratoParcelas = gtk.Entry()
		self.txtNovoContratoParcelas.set_size_request(100,27)
		self.nbContratoAba0.put(self.txtNovoContratoParcelas, 150, 370)
		" Botão Gravar Contrato "
		self.btGravarContrato = gtk.Button(stock=gtk.STOCK_SAVE)
		self.nbContratoAba0.put(self.btGravarContrato, 480, 370)
		
		
		" Botão Calendario Data inicio "
		self.btCalendarInicio = gtk.Button(None)
		icon = gtk.Image()
		icon.set_from_file('icons/calendario.png')
		self.btCalendarInicio.set_image(icon)
		self.btCalendarInicio.set_size_request(45, 45)
		self.nbContratoAba0.put(self.btCalendarInicio, 140, 280)
		" Botão Calendario Data termino "
		self.btCalendarTermino = gtk.Button(None)
		icon = gtk.Image()
		icon.set_from_file('icons/calendario.png')
		self.btCalendarTermino.set_image(icon)
		self.btCalendarTermino.set_size_request(45, 45)
		self.nbContratoAba0.put(self.btCalendarTermino, 340, 280)
		
		
		" Itens da Aba1 - formulário de Cadastro de Contrato "
		frame = gtk.Frame('Pesquisar Contrato')
		frame.set_size_request(600,410)
		frame.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
		self.nbContratoAba1.put(frame, 10, 10)
		
		frame = gtk.Frame('Pesquisar contrato por codigo do Cliente')
		frame.set_size_request(400,150)
		frame.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
		self.nbContratoAba1.put(frame, 30, 40)
		" Campo Codigo do cliente "
		self.nbContratoAba1.put(gtk.Label('Código do cliente:'), 50, 70)
		self.txtCodClientePesContrato = gtk.Entry()
		self.txtCodClientePesContrato.set_size_request(150, 27)
		self.nbContratoAba1.put(self.txtCodClientePesContrato, 50, 90)
		" Botão pesquisar Contrato "
		self.btPesContratoCodCliente = gtk.Button(stock=gtk.STOCK_FIND)
		self.nbContratoAba1.put(self.btPesContratoCodCliente, 50, 130)
		
		frame = gtk.Frame('Pesquisar contrato código do Contrato')
		frame.set_size_request(400,150)
		frame.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
		self.nbContratoAba1.put(frame, 30, 220)
		" Campo Codigo do contrato "
		self.nbContratoAba1.put(gtk.Label('Código do contrato:'), 50, 240)
		self.txtCodContratoPesContrato = gtk.Entry()
		self.txtCodContratoPesContrato.set_size_request(150, 27)
		self.nbContratoAba1.put(self.txtCodContratoPesContrato, 50, 260)
		" Botão pesquisar Contrato "
		self.btPesContratoCodContrato = gtk.Button(stock=gtk.STOCK_FIND)
		self.nbContratoAba1.put(self.btPesContratoCodContrato, 50, 300)
		
		
		" Itens da Aba2 - Resultado da pesquisa de Contrato por Cliente "
		frame = gtk.Frame('Contratos encontrado')
		frame.set_size_request(600,410)
		frame.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
		self.nbContratoAba2.put(frame, 10, 10)
		" Scrolled Window "
		scrollManutencaoAba2 = gtk.ScrolledWindow()
		scrollManutencaoAba2.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) 
		scrollManutencaoAba2.set_size_request(580, 300)
		self.nbContratoAba2.put(scrollManutencaoAba2, 20, 40)
		" TreeView"
		self.treevManutencaoAba2 = gtk.TreeView()
		scrollManutencaoAba2.add(self.treevManutencaoAba2)
		self.modelManutencaoAba2 = gtk.ListStore(str, str, str, str, str, str, str)
		self.treevManutencaoAba2.set_model(self.modelManutencaoAba2)
		self.col1 = gtk.TreeViewColumn("Código", gtk.CellRendererText(), text=0)
		self.col2 = gtk.TreeViewColumn("Cliente", gtk.CellRendererText(), text=1)
		self.col3 = gtk.TreeViewColumn("Plano", gtk.CellRendererText(), text=2)
		self.col4 = gtk.TreeViewColumn("Iniciado em", gtk.CellRendererText(), text=3)
		self.col5 = gtk.TreeViewColumn("Termina em ", gtk.CellRendererText(), text=4)
		self.col6 = gtk.TreeViewColumn("Valor", gtk.CellRendererText(), text=5)
		self.col7 = gtk.TreeViewColumn("Duraçao", gtk.CellRendererText(), text=6)
		self.col1.set_min_width(50)
		self.col2.set_min_width(250)
		self.col3.set_min_width(200)
		self.col4.set_min_width(100)
		self.col5.set_min_width(100)
		self.col6.set_min_width(100)
		self.col7.set_min_width(100)
		self.treevManutencaoAba2.append_column(self.col1)
		self.treevManutencaoAba2.append_column(self.col2)
		self.treevManutencaoAba2.append_column(self.col3)
		self.treevManutencaoAba2.append_column(self.col4)
		self.treevManutencaoAba2.append_column(self.col5)
		self.treevManutencaoAba2.append_column(self.col6)
		self.treevManutencaoAba2.append_column(self.col7)
		" Botão Visualizar "
		self.btVisualizarContrato = gtk.Button(stock=gtk.STOCK_EDIT)
		self.nbContratoAba2.put(self.btVisualizarContrato, 40, 360)
		
		" Itens da Aba3 - Formulario de alteração de contrato "
		frame = gtk.Frame('Alterar contrato')
		frame.set_size_request(600,410)
		frame.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
		self.nbContratoAba3.put(frame, 10, 10)
		" Codigo do contrato "
		self.nbContratoAba3.put(gtk.Label('Codigo do contrato:'), 30, 50)
		self.txtAltContratoCod = gtk.Entry()
		self.txtAltContratoCod.set_size_request(150, 27)
		self.txtAltContratoCod.set_editable(False)
		self.nbContratoAba3.put(self.txtAltContratoCod, 30, 70)
		" Cliente do contrato "
		self.nbContratoAba3.put(gtk.Label('Cliente:'), 30, 110)
		self.txtAltContratoCliente = gtk.Entry()
		self.txtAltContratoCliente.set_size_request(300, 27)
		self.txtAltContratoCliente.set_editable(False)
		self.nbContratoAba3.put(self.txtAltContratoCliente, 30, 130)
		" Plano do contrato "
		self.nbContratoAba3.put(gtk.Label('Plano:'), 30, 170)
		self.txtAltContratoPlano = gtk.Entry()
		self.txtAltContratoPlano.set_size_request(300, 27)
		self.txtAltContratoPlano.set_editable(False)
		self.nbContratoAba3.put(self.txtAltContratoPlano, 30, 190)
		" Data de inicio do contrato "
		self.nbContratoAba3.put(gtk.Label('Data de inicio:'), 30, 230)
		self.txtAltContratoDataI = gtk.Entry()
		self.txtAltContratoDataI.set_size_request(100, 27)
		self.txtAltContratoDataI.set_editable(False)
		self.nbContratoAba3.put(self.txtAltContratoDataI, 30, 250)
		" Data de termino do contrato "
		self.nbContratoAba3.put(gtk.Label('Data de termino:'), 180, 230)
		self.txtAltContratoDataT = gtk.Entry()
		self.txtAltContratoDataT.set_size_request(100, 27)
		self.txtAltContratoDataT.set_editable(False)
		self.nbContratoAba3.put(self.txtAltContratoDataT, 180, 250)
		" Valor total do contrato "
		self.nbContratoAba3.put(gtk.Label('Valor:'), 30, 290)
		self.txtAltContratoValor = gtk.Entry()
		self.txtAltContratoValor.set_size_request(100, 27)
		self.txtAltContratoValor.set_editable(False)
		self.nbContratoAba3.put(self.txtAltContratoValor, 30, 310)
		" Numero de parcelas "
		self.nbContratoAba3.put(gtk.Label('Numero de Percelas:'), 180, 290)
		self.txtAltContratoPercelas = gtk.Entry()
		self.txtAltContratoPercelas.set_size_request(100, 27)
		self.txtAltContratoPercelas.set_editable(False)
		self.nbContratoAba3.put(self.txtAltContratoPercelas, 180, 310)
		
		##########
		##########
		##########
		##########
		##########
		##########
		##########
		##########
		
		
		
		
		
		#
		#
		#
		##########
		##########
		### Financei
		# Toolbar para manutenção Financeira
		tbFinanceiro = gtk.Toolbar()
		tbFinanceiro.set_size_request(100, 440)
		tbFinanceiro.set_style(gtk.TOOLBAR_BOTH)
		tbFinanceiro.set_orientation(gtk.ORIENTATION_VERTICAL)
		self.Aba2.put(tbFinanceiro, 0, 0)
		### Botões do toobal 
		" Botão Recebimento "
		icon = gtk.Image()
		icon.set_from_file('icons/btRecebimento.png')
		self.btRecebimento = tbFinanceiro.append_item('Recebimento' , None, None, icon, None, None)
		self.btRecebimento.set_size_request(100, 60)
		" Adiciona separador "
		tbFinanceiro.append_space()
		" Botão Pagamento "
		icon = gtk.Image()
		icon.set_from_file('icons/btPagamento.png')
		self.btPagamento = tbFinanceiro.append_item('Pagamento', None, None, icon, None, None)
		self.btPagamento.set_size_request(100, 60)
		
		### Notebook Financeiro
		self.nbFinanceiro = gtk.Notebook()
		self.nbFinanceiro.set_size_request(680, 440)
		self.nbFinanceiro.set_show_tabs(False)
		self.Aba4.put(self.nbFinanceiro, 100,0)
		### Abas do Notebook de Financeiro
		### Aba0 - Formulário para Novo Planos
		self.nbFinanceiroAba0 = gtk.Fixed()
		self.nbFinanceiro.append_page(self.nbFinanceiroAba0)
		### Aba0 - Formulário para Novo Planos
		self.nbFinanceiroAba1 = gtk.Fixed()
		self.nbFinanceiro.append_page(self.nbFinanceiroAba1)
		
		##########
		##########
		
		###
		### Toolbar para manutenção de Manutenção
		tbManutencao = gtk.Toolbar()
		tbManutencao.set_size_request(150, 440)
		tbManutencao.set_style(gtk.TOOLBAR_BOTH)
		tbManutencao.set_orientation(gtk.ORIENTATION_VERTICAL)
		self.Aba3.put(tbManutencao, 0, 0)
		### Botões do toolbar 
		" Adiciona separador "
		tbManutencao.append_space()
		" Botão Gerar mensalidades "
		icon = gtk.Image()
		icon.set_from_file('icons/gerarMensalidade.png')
		self.btGerarMensalidade = tbManutencao.append_item('Gerar Mensalidades', None, None, icon, None, None)
		self.btGerarMensalidade.set_size_request(100, 60)
		" Adiciona separador "
		tbManutencao.append_space()
		###
		
		" Notebook para manutenção de Manutenção "
		self.nbManutencao = gtk.Notebook()
		self.nbManutencao.set_size_request(630, 440)
		self.nbManutencao.set_show_tabs(False)
		self.Aba3.put(self.nbManutencao, 150,0)
		### Abas do Notebook de Financeiro
		### Aba0 - Formulário para Novo Planos
		self.nbManutencaoAba0 = gtk.Fixed()
		self.nbManutencao.append_page(self.nbManutencaoAba0)
		" Itens da Aba0 - formulário Para geração de mensalidades "
		frame = gtk.Frame('Gerar mensalidades')
		frame.set_size_request(600,410)
		frame.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
		self.nbManutencaoAba0.put(frame, 10, 10)
		" Descrição do Plano "
		self.nbManutencaoAba0.put(gtk.Label('Descrição:'), 30, 40)
		
		
		
		#################
		#################
		### Toolbar para manutenção de Planos
		tbPlanos = gtk.Toolbar()
		tbPlanos.set_size_request(100, 440)
		tbPlanos.set_style(gtk.TOOLBAR_BOTH)
		tbPlanos.set_orientation(gtk.ORIENTATION_VERTICAL)
		self.Aba4.put(tbPlanos, 0, 0)
		### Botões do toolbar 
		" Adiciona separador "
		tbPlanos.append_space()
		" Botão Novo plano "
		icon = gtk.Image()
		icon.set_from_file('icons/btNovoPlano.png')
		self.btNovoPlano = tbPlanos.append_item('Novo', None, None, icon, None, None)
		self.btNovoPlano.set_size_request(100, 60)
		" Adiciona separador "
		tbPlanos.append_space()
		" Botão Pesquisar Planos "
		icon = gtk.Image()
		icon.set_from_file('icons/btPesquisarPlano.png')
		self.btPesquisaPlano = tbPlanos.append_item('Pesquisar', None, None, icon, None, None)
		self.btPesquisaPlano.set_size_request(100, 60)
		###
		
		" Notebook para manutenção de Planos "
		self.nbPlanos = gtk.Notebook()
		self.nbPlanos.set_size_request(680, 440)
		self.nbPlanos.set_show_tabs(False)
		self.Aba4.put(self.nbPlanos, 100,0)
		### Abas do Notebook de Financeiro
		### Aba0 - Formulário para Novo Planos
		self.nbPlanosAba0 = gtk.Fixed()
		self.nbPlanos.append_page(self.nbPlanosAba0)
		### Aba1 - Formulário de pesquisar de Planos
		self.nbPlanosAba1 = gtk.Fixed()
		self.nbPlanos.append_page(self.nbPlanosAba1)
		### Aba2 - Resultado da pesquisa por Descrição
		self.nbPlanosAba2 = gtk.Fixed()
		self.nbPlanos.append_page(self.nbPlanosAba2)
		### Aba3 - Resultado da pesquisa por Código
		self.nbPlanosAba3 = gtk.Fixed()
		self.nbPlanos.append_page(self.nbPlanosAba3)
		
		" Itens da Aba0 - formulário de Cadastro de Planos "
		frame = gtk.Frame('Novo Plano')
		frame.set_size_request(650,410)
		frame.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
		self.nbPlanosAba0.put(frame, 10, 10)
		" Descrição do Plano "
		self.nbPlanosAba0.put(gtk.Label('Descrição:'), 30, 40)
		self.txtNovoPlanoDescricao = gtk.Entry()
		self.txtNovoPlanoDescricao.set_size_request(300, 27)
		self.nbPlanosAba0.put(self.txtNovoPlanoDescricao, 30, 60)
		" Valor do plano "
		self.nbPlanosAba0.put(gtk.Label('Valor:'), 30, 100)
		self.txtNovoPlanoValor = gtk.Entry()
		self.txtNovoPlanoValor.set_size_request(150, 27)
		self.nbPlanosAba0.put(self.txtNovoPlanoValor, 30, 120)
		" Numero de Aulas "
		self.nbPlanosAba0.put(gtk.Label('Aulas semanais:'), 30, 160)
		self.txtNovoPlanoAulas = gtk.Entry()
		self.txtNovoPlanoAulas.set_size_request(150, 27)
		self.nbPlanosAba0.put(self.txtNovoPlanoAulas, 30, 180)
		" Botão Salvar Plano "
		self.btSalvarPlano = gtk.Button(stock=gtk.STOCK_SAVE)
		self.nbPlanosAba0.put(self.btSalvarPlano, 30, 230)
		
		" Itens da Aba1 - formulário de Pesquisa de Planos "
		frame = gtk.Frame('Pesquisar Plano')
		frame.set_size_request(650,410)
		frame.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
		self.nbPlanosAba1.put(frame, 10, 10)
		" Pesquisar por Descrição "
		frame = gtk.Frame('Pesquisar por Descrição')
		frame.set_size_request(300,150)
		frame.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
		self.nbPlanosAba1.put(frame, 30, 40)
		self.nbPlanosAba1.put(gtk.Label('Descrição:'), 50, 70)
		self.txtPesPlanoDescricao = gtk.Entry()
		self.txtPesPlanoDescricao.set_size_request(250, 27)
		self.nbPlanosAba1.put(self.txtPesPlanoDescricao, 50, 90)
		self.btPesPlanoDescricao = gtk.Button(stock=gtk.STOCK_FIND)
		self.nbPlanosAba1.put(self.btPesPlanoDescricao, 50, 140)
		" Pesquisar por Descrição "
		frame = gtk.Frame('Pesquisar por Código')
		frame.set_size_request(300,150)
		frame.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
		self.nbPlanosAba1.put(frame, 30, 220)
		self.nbPlanosAba1.put(gtk.Label('Descrição:'), 50, 240)
		self.txtPesPlanoCodigo = gtk.Entry()
		self.txtPesPlanoCodigo.set_size_request(250, 27)
		self.nbPlanosAba1.put(self.txtPesPlanoCodigo, 50, 260)
		self.btPesPlanoCodigo = gtk.Button(stock=gtk.STOCK_FIND)
		self.nbPlanosAba1.put(self.btPesPlanoCodigo, 50, 300)
		
		" Itens da Aba2 - Resultado da pesquisa por Descrição "
		" Scrolled Window "
		scroll = gtk.ScrolledWindow()
		scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) 
		scroll.set_size_request(650, 330)
		self.nbPlanosAba2.put(scroll, 10, 30)
		" TreeView"
		self.treevNbPlanosAba2 = gtk.TreeView()
		scroll.add(self.treevNbPlanosAba2)
		self.model = gtk.ListStore(str, str, str, str)
		self.treevNbPlanosAba2.set_model(self.model)
		self.col1 = gtk.TreeViewColumn("Código", gtk.CellRendererText(), text=0)
		self.col2 = gtk.TreeViewColumn("Descrição", gtk.CellRendererText(), text=1)
		self.col3 = gtk.TreeViewColumn("Valor", gtk.CellRendererText(), text=2)
		self.col4 = gtk.TreeViewColumn("Numero de aulas", gtk.CellRendererText(), text=3)
		self.col1.set_min_width(50)
		self.col2.set_min_width(250)
		self.col3.set_min_width(120)
		self.col4.set_min_width(180)
		self.treevNbPlanosAba2.append_column(self.col1)
		self.treevNbPlanosAba2.append_column(self.col2)
		self.treevNbPlanosAba2.append_column(self.col3)
		self.treevNbPlanosAba2.append_column(self.col4)
		" Botão Alterar "
		self.btAltPlano = gtk.Button(stock=gtk.STOCK_EDIT)
		self.btAltPlano.set_size_request(100, 40)
		self.nbPlanosAba2.put(self.btAltPlano, 50, 380)
		
		" Itens da Aba3 - Formulário de alteração de Planos "
		frame = gtk.Frame('Alteração de planos')
		frame.set_size_request(650, 410)
		frame.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
		self.nbPlanosAba3.put(frame, 10, 10)
		" Campo Código "
		self.nbPlanosAba3.put(gtk.Label('Código:'), 30, 40)
		self.txtCodAltPlano = gtk.Entry()
		self.txtCodAltPlano.set_size_request(100, 27)
		self.txtCodAltPlano.set_editable(False)
		self.nbPlanosAba3.put(self.txtCodAltPlano, 30, 60)
		" Campo Descrição "
		self.nbPlanosAba3.put(gtk.Label('Descrição:'), 30, 100)
		self.txtDescricaoAltPlano = gtk.Entry()
		self.txtDescricaoAltPlano.set_size_request(300, 27)
		self.nbPlanosAba3.put(self.txtDescricaoAltPlano, 30, 120)
		" Campo Valor "
		self.nbPlanosAba3.put(gtk.Label('Valor:'), 30, 160)
		self.txtValorAltPlano = gtk.Entry()
		self.txtValorAltPlano.set_size_request(150, 27)
		self.nbPlanosAba3.put(self.txtValorAltPlano, 30, 180)
		" Campo Aulas semanais "
		self.nbPlanosAba3.put(gtk.Label('Aulas semanais:'), 30, 220)
		self.txtAulasAltPlano = gtk.Entry()
		self.txtAulasAltPlano.set_size_request(150, 27)
		self.nbPlanosAba3.put(self.txtAulasAltPlano, 30, 240)
		" Botão Salvar "
		self.btSalvarAltPlanos = gtk.Button(stock=gtk.STOCK_SAVE)
		self.nbPlanosAba3.put(self.btSalvarAltPlanos, 30, 300)
		
	######################
	######################
	######################
	
	
	########## Janela contendo Calendario para pegar a Data de
	########## de inicio do Contrato
	def calendarioInicio(self):
		" Criando a Janela "
		self.jCalendarioInicio = gtk.Window(gtk.WINDOW_TOPLEVEL)
		self.jCalendarioInicio.set_size_request(300,300)
		self.jCalendarioInicio.set_title(' Calendario ')
		self.jCalendarioInicio.set_position(gtk.WIN_POS_CENTER)
		fixed = gtk.Fixed()
		self.jCalendarioInicio.add(fixed)
		" Criando um Frame "
		frame = gtk.Frame('Data do Inicio')
		frame.set_size_request(280, 280)
		fixed.put(frame, 10, 10)
		" Adicionando o Calendario "
		self.calendarioI = gtk.Calendar()
		fixed.put(self.calendarioI, 20 ,35)
		" Adicionando o Botão OK "
		self.btCalendarioInicioOK = gtk.Button(stock=gtk.STOCK_OK)
		self.btCalendarioInicioOK.set_size_request(260, 45)
		fixed.put(self.btCalendarioInicioOK, 20, 230)
	
	########## Janela contendo Calendario para pegar a Data de
	########## de termino do Contrato
	def calendarioTermino(self):
		" Criando a Janela "
		self.jCalendarioTermino = gtk.Window(gtk.WINDOW_TOPLEVEL)
		self.jCalendarioTermino.set_size_request(300,300)
		self.jCalendarioTermino.set_title(' Calendario ')
		self.jCalendarioTermino.set_position(gtk.WIN_POS_CENTER)
		fixed = gtk.Fixed()
		self.jCalendarioTermino.add(fixed)
		" Criando um Frame "
		frame = gtk.Frame('Data do Termino')
		frame.set_size_request(280, 280)
		fixed.put(frame, 10, 10)
		" Adicionando o Calendario "
		self.calendarioT = gtk.Calendar()
		fixed.put(self.calendarioT, 20 ,35)
		" Adicionando o Botão OK "
		self.btCalendarioTerminoOK = gtk.Button(stock=gtk.STOCK_OK)
		self.btCalendarioTerminoOK.set_size_request(260, 45)
		fixed.put(self.btCalendarioTerminoOK, 20, 230)
	
	########## Janela contendo formulário para pegar os dados
	########## do Cliente para o Contrato
	def formPegaClienteNovoContrato(self):
		" Criando a janela "
		self.jFormClienteNovoContrato = gtk.Window()
		self.jFormClienteNovoContrato.set_size_request(250,200)
		self.jFormClienteNovoContrato.set_title('Novo contrato')
		self.jFormClienteNovoContrato.set_position(gtk.WIN_POS_CENTER)
		fixed = gtk.Fixed()
		self.jFormClienteNovoContrato.add(fixed)
		" Criando um frame "
		frame = gtk.Frame('pegar dados do Cliente')
		frame.set_size_request(230, 180)
		fixed.put(frame, 10, 10)
		" Adiciona o campo Código "
		fixed.put(gtk.Label('Código:'), 20, 40)
		self.txtCodClienteNovoContrato = gtk.Entry()
		self.txtCodClienteNovoContrato.set_size_request(150, 27)
		fixed.put(self.txtCodClienteNovoContrato, 20, 60)
		" Botão OK "
		self.btClienteNovoContratoOK = gtk.Button(stock=gtk.STOCK_OK)
		self.btClienteNovoContratoOK.set_size_request(190, 45)
		fixed.put(self.btClienteNovoContratoOK, 30, 110)
	########## Janela contendo formulário para pegar os dados
	########## do Plano para o Contrato
	def formPegaPlanoNovoContrato(self):
		" Criando a janela "
		self.jFormPlanoNovoContrato = gtk.Window()
		self.jFormPlanoNovoContrato.set_size_request(250,200)
		self.jFormPlanoNovoContrato.set_title('Novo contrato')
		self.jFormPlanoNovoContrato.set_position(gtk.WIN_POS_CENTER)
		fixed = gtk.Fixed()
		self.jFormPlanoNovoContrato.add(fixed)
		" Criando um frame "
		frame = gtk.Frame('pegar dados do Plano')
		frame.set_size_request(230, 180)
		fixed.put(frame, 10, 10)
		" Adiciona o campo Código "
		fixed.put(gtk.Label('Código:'), 20, 40)
		self.txtCodPlanoNovoContrato = gtk.Entry()
		self.txtCodPlanoNovoContrato.set_size_request(150, 27)
		fixed.put(self.txtCodPlanoNovoContrato, 20, 60)
		" Botão OK "
		self.btPlanoNovoContratoOK = gtk.Button(stock=gtk.STOCK_OK)
		self.btPlanoNovoContratoOK.set_size_request(190, 45)
		fixed.put(self.btPlanoNovoContratoOK, 30, 110)
